In addition to video and audio data, broadcast media streams may contain data for interactive television (iTV). One example of iTV is delivering movies or other programming to a specific user “on demand,” in which case the user does not affect the content. In this example, there is no return path to the broadcaster. For example, once the movie is downloaded all control over the movie presentation may be on a user's set top box (STB). As another example, the users affect the iTV programming such as by real-time voting. In this example, audience members cast votes to create decisions that are reflected in how the show continues. Note that in this latter example, there is a return path from the users to the program provider. Still another example of iTV is using part of the broadcast media stream to deliver games to a user. For example, one part of the broadcast media stream contains more conventional non-interactive content, whereas another part contains an interactive game. There is virtually no limit to the possibilities of interactive TV; therefore, the foregoing should be understood to be non-limiting examples.
More and more broadcasters are choosing to adopt iTV. Some countries even require that broadcasters provide iTV support. However, there exists a wide variety of iTV standards such as Multimedia and Hypermedia Experts Group (MHEG), Broadcast Markup Language (BML), Multimedia Home Platform (MHP), and OpenCable Application Platform (OCAP). Furthermore, a broadcaster may use a proprietary iTV implementation rather than an established standard.
Many iTV standards define the interface for a virtual machine (VM). In general, a VM is software that can be thought of as an implementation of a machine (e.g., computer) that executes software applications like a real machine. A goal of a VM is to allow applications to interact with the VM independent of the actual hardware and operating system. A given iTV standard may define how an iTV VM for that iTV standard should behave, what inputs to accept, how to react to the input, and what APIs to provide to applications that interface with the iTV VM. As one example, with respect to MHEG-5, the International Organization for Standardization (ISO) provides the document, “Coding of Multimedia and Hypermedia Information—Part 5, Support for Base-level Interactive Applications” (ISO/IEC 13522-5). As another example, BML is governed by ARIB (Association of Radio Industries and Businesses) standard body, which provides the “Data Coding and Transmission Specification for Digital Broadcasting Standard (ARIB STD-B24).
As suggested by the foregoing, the user's receiver may have one or more applications that provide programming services, such as electronic program guides (EPG) that need to interface with the iTV VM. Because the interface for an iTV VM for a given type of iTV is standardized, the same software application can interface a given type of iTV VM. For example, an EPG application should be able to interface with an iTV VM that complies with MHEG regardless of what computing platform and operating system is in use. However, typically the same application cannot interface with iTV VMs that comply with different standards. For example, the interface to an MHP iTV VM may be substantially different from the interface to an MHEG iTV VM, thus the same EPG application may be unable to interface with both.
Thus, a problem is designing a TV receiver that will support a set of existing iTV standards and can be extended to support additional iTV standards.